home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / c / hce.lha / HCE / LibSource / clib / Misc / src / chdir.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-09-02  |  882 b   |  42 lines

  1. #include <libraries/dosextens.h>
  2. #include <exec/memory.h>
  3.  
  4.                  /* Note - Modified by Jason Petty, Marked J.P. */
  5. #ifndef NULL
  6. #define NULL 0L
  7. #endif
  8.  
  9. #undef ACCESS_READ
  10. #define ACCESS_READ -2
  11.  
  12. typedef    struct FileLock LOCK;    /* Was struct Lock LOCK. J.P. */
  13.  
  14. extern LOCK *Lock();             /* Was LOCK Lock(), J.P. */
  15. extern long IoErr();
  16. extern void UnLock();
  17. extern LOCK *CurrentDir();
  18.  
  19. /*------------------------------------------------------------------*/
  20. /*    chdir(path): make path the current directory. Return Ok/Not */
  21. /*------------------------------------------------------------------*/
  22.  
  23. int chdir( path )
  24. char *path;
  25. {
  26.     register LOCK *lock;
  27.     LOCK *oldLock;
  28.  
  29.     if ( *path == '\0' )
  30.         return 0;
  31.  
  32.     lock = Lock( path, ACCESS_READ );
  33.     if ( lock == NULL )
  34.         return (int)IoErr();
  35.  
  36.     oldLock = CurrentDir( lock );
  37.     if ( oldLock )
  38.         UnLock( oldLock );
  39.  
  40.     return 0;
  41. }
  42.